import logging


def create_log(name='mylog', level='DEBUG', filename='test.log', sh_level='DEBUG', fh_level='DEBUG'):
    # 第一步：创建日志收集器
    log = logging.getLogger(name)
    # 第二步：设置收集器收集日志等级
    log.setLevel(level)

    # 第三步：设置日志输出渠道
    # 3。1 输出到控制台渠道
    sh = logging.StreamHandler()
    sh.setLevel(sh_level)
    log.addHandler(sh)

    # 3.2 输出到文件渠道配置
    fh = logging.FileHandler('logs/{0}'.format(filename), encoding='utf-8')
    fh.setLevel(fh_level)
    log.addHandler(fh)

    # 第四步：设置日志输出格式
    # 4.设置日志输出的等级
    formats = '%(asctime)s - %(filename)s - %(lineno)d - %(levelname)s:%(message)s'
    # 创建格式对象
    log_format = logging.Formatter(formats)

    sh.setFormatter(log_format)
    fh.setFormatter(log_format)
    return log
